package cn.smxy.college.service;

import cn.smxy.param.CollegeDetailParam;
import cn.smxy.param.CollegeSearchParam;
import cn.smxy.param.PageParam;
import cn.smxy.pojo.College;
import cn.smxy.util.R;

import java.util.List;

public interface CollegeService {
    /**
     * 展示所有学校信息
     * 1.查询数据库并返回(get请求，不能直接返回整个实体类)
     * @return
     */
    R list();

    /**
     * 分页展示所有学校信息
     * 1.条件封装
     * 2.查询并返回
     * @param collegeSearchParam
     * @return
     */
    R page(CollegeSearchParam collegeSearchParam);

    /**
     * 查询学校详情(查询学号校验方法)
     * 1.条件封装
     * 2.查询并返回
     * @param collegeDetailParam
     * @return
     */
    R detail(CollegeDetailParam collegeDetailParam);

    /**
     * 添加学校
     * @param college
     * @return
     */
    R save(College college);

    /**
     * excel批量导入
     * @param list
     */
    void saveExcel(List<College> list);

    /**
     * excel批量导出
     * @return
     */
    R getAll();

    /**
     * 修改学校信息
     * @param college
     * @return
     */
    R update(College college);

    /**
     * 删除学校
     * 1.查询校园表中对应的校园认证
     * 2.删除学校
     * 3.删除该校所有的学生认证
     * 4.修改对应用户的角色权限
     * @param collegeId
     * @return
     */
    R remove(Long collegeId);
}
